/**
 * 
 */
package systole.persistence.brokersInterface;

import java.util.List;

import systole.domain.persons.Patient;
import systole.domain.report.Report;
import systole.exceptions.ExceptionDAO;

/**
 * @author jmj
 *
 */
public interface ReportBroker {

    /**
     * @param id ID of report.
     * @return the report with Id id.
     * @throws ExceptionDAO 
     */
    public Report getReportById(Integer id) throws ExceptionDAO;

    /**
     * @param report Report to be stored.
     * @throws ExceptionDAO 
     */
    public void insert(Report report) throws ExceptionDAO;

    /**
     * @param report Report to be updated.
     * @throws ExceptionDAO 
     */
    public void update(Report report) throws ExceptionDAO;

    /**
     * @param patient
     * @return The list of patient report.
     * @throws ExceptionDAO 
     */
    public List<Report> getReportsByPatient(Patient patient) throws ExceptionDAO;
}
